// filename: MessagePumpDispatcher.h
// author: enic
// date: 2015-10-08

#pragma once

#include <cstdint>

#if defined(WIN32)
	#include <windows.h>
	typedef MSG NativeEvent;
#elif defined(XXX)
	XXXX
#endif

class MessagePumpDispatcher
{
public:
	enum PostDispatchAction
	{
		POST_DISPATCH_NONE = 0x0,
		POST_DISPATCH_QUIT_LOOP = 0x1,
		POST_DISPATCH_PERFORM_DEFAULT = 0x2,
	};

	virtual ~MessagePumpDispatcher() {}

	virtual uint32_t Dispatch(const NativeEvent& evt) = 0;
};